// Used to store that is shared between the functions/chapters of a mission.

//#define __FORCE_TRACE__
//#define __FORCE_DEBUG__
//#define __FORCE_INFO__
#define THIS_FILE "management\fn_getMissionJIPVar.sqf"
#include <tmf_constants.h>
#include <tmf_macros.h>

TRACE_1("Start",_this);
TMFPROFILERSTART;

private ["_key","_default","_instance_id","_result","_variables","_instances"];
DEFAULT_PARAM(_instance_id,0,"");
DEFAULT_PARAM(_key,1,"");
DEFAULT_PARAM(_default,2,nil);
_result = _default;
if (_key != "") then {
	_instances = JIPGETVAR(QGVAR(MISSION_INSTANCES),[]);
	if (!(_instance_id in _instances)) then {
		_instances set [count _instances, _instance_id];
		JIPSETVAR(QGVAR(MISSION_INSTANCES),_instances);
	};
	_variables = JIPGETVAR(_instance_id,(call CFUNC(hashEmpty)));
	_result = [_variables,_key,_default] call CFUNC(hashGet);
};
TRACE_1("End",_result);
TMFPROFILERSTOP;
_result;